package com.xinke.module.system.mapper.dict;

import java.util.*;

import com.xinke.component.common.pojo.PageResult;
import com.xinke.component.mybatis.mybatis.core.query.LambdaQueryWrapperExt;
import com.xinke.component.mybatis.mybatis.core.mapper.BaseMapperExt;
import com.xinke.module.system.model.entity.dict.DictDataDO;
import org.apache.ibatis.annotations.Mapper;
import com.xinke.module.system.model.vo.dict.*;

/**
 * 字典数据 Mapper
 *
 * @author yzx
 */
@Mapper
public interface DictDataMapper extends BaseMapperExt<DictDataDO> {

    default PageResult<DictDataDO> selectPage(DictDataPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperExt<DictDataDO>()
                .eqIfPresent(DictDataDO::getDataLabel, reqVO.getDataLabel())
                .eqIfPresent(DictDataDO::getDataValue, reqVO.getDataValue())
                .eqIfPresent(DictDataDO::getDictItem, reqVO.getDictItem())
                .eqIfPresent(DictDataDO::getDataStatus, reqVO.getDataStatus())
                .eqIfPresent(DictDataDO::getColorType, reqVO.getColorType())
                .eqIfPresent(DictDataDO::getCssClass, reqVO.getCssClass())
                .eqIfPresent(DictDataDO::getRemark, reqVO.getRemark())
                .orderByDesc(DictDataDO::getDataId));
    }

    default List<DictDataDO> selectListByStatusAndDictType(Integer status, String dictType) {
        return selectList(new LambdaQueryWrapperExt<DictDataDO>()
                .eqIfPresent(DictDataDO::getDataStatus, status)
                .eqIfPresent(DictDataDO::getDictItem, dictType));
    }

}